#include <REGX52.H> //尖括号表示在安装目录下找
#include "Delay.h" //双引号表示在本工程找
#include "LCD1602.h"
#include "MatrixKey.h"

unsigned char KeyNum;
unsigned int PassWord,Count;

void main()
{
	LCD_Init();
	LCD_ShowString(1,1,"Password:");
	while(1)
	{
		KeyNum=MatrixKey;
		if(KeyNum) //非零即执行,若为零则没有按键按下不进入执行语句
		{
			if (KeyNum<=10) //如果s1~s10按键按下，输入密码
			{
				if(Count<4) //控制最多一次性输入四位密码
				{
				PassWord*=10; 
				PassWord=KeyNum%10; //获取一位密码，1~9正常输出，输入10对10取余则输入0
				//0000→0001→0010→0012→0123→1230→1234
				Count++;
				}
				LCD_ShowNum(2,1,PassWord,4); //更新显示
			}
			if(KeyNum==11) //按下s11，确认
			{
				if(PassWord==2345)
				{
					LCD_ShowString(1,14,"OK "); //密码正确
					PassWord=0; //密码清零
					Count=0; //计次清零
			    	LCD_ShowNum(2,1,PassWord,4); //更新显示
				}
				else
				{
			 	    LCD_ShowString(1,14,"ERR"); //密码错误
					PassWord=0; //密码清零
					Count=0; //计次清零
				    LCD_ShowNum(2,1,PassWord,4); //更新显示
				}
			}
			if (KeyNum==12) //如果s12按下，取消
			{
				PassWord=0; //密码清零
				Count=0; //计次清零
			    LCD_ShowNum(2,1,PassWord,4); //更新显示		
			}
		}
	}
}